package com.seatiger.structure.map;

/**
 * 映射的接口定义
 */
public interface Map<K,V> {

    /**
     * 添加键值对
     * @param key
     * @param value
     */
    void add(K key,V value);

    /**
     * 删除键
     * @param key
     * @return
     */
    V remove(K key);

    /**
     * 查询是否包含k
     * @param key
     * @return
     */
    boolean contains(K key);

    /**
     * 通过k查询value
     * @param key
     * @return
     */
    V get(K key);

    /**
     * 设置值
     * @param key
     * @param newValue
     */
    void set(K key,V newValue);

    /**
     * 查询映射大小
     * @return
     */
    int getSize();

    /**
     * 判断是否为空
     * @return
     */
    boolean isEmpty();
}
